#include "../include/opensync.h"

/*
	功能：完成数据报文接收资源的初始化。包括libpcap句柄的初始化、打开网络设备、设置过滤规则等。
	输入参数：过滤规则字符串指针，示例：u8* rule= "ether[3:1]=0x01 and ether[12:2]=0xff01";
	返回结果：成功返回0，失败返回-1
*/
int os_pkt_receive_send_init(u8* net_interface, u8* filter_rule)
{
#ifndef SIM
	struct sock_fprog os_filter;
	int re = tsmp_pkt_send_recv_init(net_interface, os_filter);
	return re;
#endif
#if SIM
	data_pkt_receive_init(net_interface);
#endif

}

/*
	@功能：非阻塞接收报文
	@输入参数：报文长度的指针
	@返回结果：成功返回报文首地址，否则返回空
*/
u8* os_pkt_receive(u16* pkt_len)
{
#ifndef SIM
	u8* pkt = data_pkt_receive_dispatch_1(pkt_len);
	return pkt;
#endif
#if SIM
	u8* pkt = data_pkt_receive_dispatch_1(pkt_len);
	return pkt;
#endif
}


/*
	功能：完成数据报文接收资源的销毁
	输入参数：无
	返回结果：成功返回0，失败返回-1
*/
int os_pkt_receive_send_destroy()
{
#ifndef SIM
	tsmp_pkt_send_recv_destroy();
#endif
#if SIM
	data_pkt_receive_destroy();
#endif
}


int os_pkt_send(u8* pkt, u16 pkt_len)
{
#ifndef SIM
	data_pkt_send_handle(pkt, pkt_len);
#endif
#if SIM
	data_pkt_send_handle(pkt, pkt_len);
#endif
}
